package com.face.managesystem.controller;

import com.face.managesystem.config.CodeCaptcha;
import com.face.managesystem.config.Result;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 页面跳转控制器。
 */
@Controller
public class PageMSController {

    // 日期格式化对象
    private final SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
    private final Date date = new Date();

    /**
     * 登录页 页面跳转。
     * @return
     *      登录页的位置。
     */
//    @GetMapping({"/login","/login.HTML","/login.html","/login.do" /*,"/login.*"*/})
    @GetMapping({"/login","/login."})
    public String isUser(){
        return "/login.html";
    }

    /**
     * 定位后台管理的首页 页面跳转。
     * @return
     *      后台管理首页。
     */
    @GetMapping("/managementSystem")
    public String managementSystem(){
        return "/managementSystem/index.html";
    }


    /**
     * 获取验证码。【验证码只在页面使用时，才会显示。直接通过 API 接口调用，会展示原始数据，而不是验证码】
     * @param response：回传的信息。
     * @param date：用于防止浏览器使用本地缓存图片的问题。
     *
     */
    @GetMapping({"/code", "/code.jpg","/code.png","/code.svg"})
    public void code(HttpServletResponse response, @RequestParam(value = "date",required = false) Long date){
        System.out.println("date = " + date);
        System.out.println("response = " + response);

        try {
            // 生成验证码。
            CodeCaptcha.getCode(response);
            if (date!=null){
                this.date.setTime(date);
                System.out.println("时间："+ ft.format(date));
            }
            System.out.println("验证码生成：" + CodeCaptcha.getCode());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
